﻿2026-06-04T02:01:23.6457246Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T02:01:23.6458913Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T02:01:23.6482887Z shell: /usr/bin/bash -e {0}
2026-06-04T02:01:23.6484112Z ##[endgroup]
2026-06-04T02:01:23.6665531Z Requirement quality findings (15); 126 requirements queued for agent review:
2026-06-04T02:01:23.6670611Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6675185Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T02:01:23.6680227Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6685506Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6690266Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T02:01:23.6694233Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T02:01:23.6698845Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6704519Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6709392Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T02:01:23.6713154Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T02:01:23.6716294Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T02:01:23.6720977Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6725471Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6729464Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T02:01:23.6732908Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T02:01:23.6734662Z 
2026-06-04T02:01:23.6735161Z # Requirement quality review
2026-06-04T02:01:23.6735933Z 
2026-06-04T02:01:23.6737436Z You are reviewing 126 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T02:01:23.6740542Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T02:01:23.6743279Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T02:01:23.6745680Z this command's output. Your task is the rubric items below.
2026-06-04T02:01:23.6746946Z 
2026-06-04T02:01:23.6747357Z ## Rubric
2026-06-04T02:01:23.6747865Z 
2026-06-04T02:01:23.6749224Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T02:01:23.6752116Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T02:01:23.6754730Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T02:01:23.6756862Z - **active-voice** — clear subject and active verb.
2026-06-04T02:01:23.6757964Z 
2026-06-04T02:01:23.6759125Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T02:01:23.6761648Z clear concerns.
2026-06-04T02:01:23.6762240Z 
2026-06-04T02:01:23.6762675Z ## Requirements
2026-06-04T02:01:23.6763254Z 
2026-06-04T02:01:23.6763681Z ### REQ-ARCH-1
2026-06-04T02:01:23.6764871Z - Title: Many small acyclically-layered crates
2026-06-04T02:01:23.6778117Z - Required stages: impl
2026-06-04T02:01:23.6778892Z 
2026-06-04T02:01:23.6779553Z ### REQ-ARCH-2
2026-06-04T02:01:23.6781627Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T02:01:23.6783345Z - Required stages: impl
2026-06-04T02:01:23.6784023Z 
2026-06-04T02:01:23.6784448Z ### REQ-ARCH-3
2026-06-04T02:01:23.6786094Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T02:01:23.6788113Z - Required stages: impl, unit
2026-06-04T02:01:23.6788908Z 
2026-06-04T02:01:23.6789372Z ### REQ-ARCH-4
2026-06-04T02:01:23.6791341Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T02:01:23.6793161Z - Required stages: impl, unit
2026-06-04T02:01:23.6793955Z 
2026-06-04T02:01:23.6794387Z ### REQ-DAEMON-1
2026-06-04T02:01:23.6795811Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T02:01:23.6797593Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6798478Z 
2026-06-04T02:01:23.6798899Z ### REQ-DAEMON-2
2026-06-04T02:01:23.6800677Z - Title: Broker/brain split for seamless self-update
2026-06-04T02:01:23.6802292Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6803156Z 
2026-06-04T02:01:23.6803593Z ### REQ-DAEMON-3
2026-06-04T02:01:23.6804937Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T02:01:23.6806654Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6807507Z 
2026-06-04T02:01:23.6807939Z ### REQ-DAEMON-4
2026-06-04T02:01:23.6809082Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T02:01:23.6811063Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6811933Z 
2026-06-04T02:01:23.6812350Z ### REQ-STORE-1
2026-06-04T02:01:23.6818436Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T02:01:23.6825316Z - Required stages: 
2026-06-04T02:01:23.6825950Z 
2026-06-04T02:01:23.6826400Z ### REQ-MANIFEST-1
2026-06-04T02:01:23.6827954Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T02:01:23.6830223Z - Required stages: doc, impl, unit
2026-06-04T02:01:23.6831104Z 
2026-06-04T02:01:23.6831559Z ### REQ-SEAM-SPAWN
2026-06-04T02:01:23.6832638Z - Title: spawn-session seam
2026-06-04T02:01:23.6833860Z - Required stages: impl, unit
2026-06-04T02:01:23.6834651Z 
2026-06-04T02:01:23.6835117Z ### REQ-SEAM-POSTSPAWN
2026-06-04T02:01:23.6836421Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T02:01:23.6837978Z - Required stages: impl, unit
2026-06-04T02:01:23.6838771Z 
2026-06-04T02:01:23.6839238Z ### REQ-SEAM-PSYCHE
2026-06-04T02:01:23.6840808Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T02:01:23.6842425Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6843293Z 
2026-06-04T02:01:23.6843738Z ### REQ-SEAM-HISTORY
2026-06-04T02:01:23.6845293Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T02:01:23.6847211Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6848076Z 
2026-06-04T02:01:23.6848511Z ### REQ-SEAM-ACTIVITY
2026-06-04T02:01:23.6850416Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T02:01:23.6852303Z - Required stages: impl, unit
2026-06-04T02:01:23.6853095Z 
2026-06-04T02:01:23.6853537Z ### REQ-SEAM-INJECT
2026-06-04T02:01:23.6854948Z - Title: inject-input methods configurable per activity-state
2026-06-04T02:01:23.6856696Z - Required stages: impl, unit
2026-06-04T02:01:23.6857480Z 
2026-06-04T02:01:23.6857914Z ### REQ-SEAM-RESUME
2026-06-04T02:01:23.6859665Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T02:01:23.6861790Z - Required stages: impl, unit
2026-06-04T02:01:23.6862578Z 
2026-06-04T02:01:23.6863032Z ### REQ-SEAM-CAPABILITY
2026-06-04T02:01:23.6864433Z - Title: Hostable endpoint-types capability declaration
2026-06-04T02:01:23.6866066Z - Required stages: impl, unit
2026-06-04T02:01:23.6866848Z 
2026-06-04T02:01:23.6867530Z ### REQ-SEAM-UPDATE
2026-06-04T02:01:23.6868964Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T02:01:23.6871273Z - Required stages: impl, unit
2026-06-04T02:01:23.6872073Z 
2026-06-04T02:01:23.6872488Z ### REQ-API-1
2026-06-04T02:01:23.6873904Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T02:01:23.6875715Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6876569Z 
2026-06-04T02:01:23.6876992Z ### REQ-API-2
2026-06-04T02:01:23.6878627Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T02:01:23.6880727Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6881587Z 
2026-06-04T02:01:23.6882000Z ### REQ-API-3
2026-06-04T02:01:23.6883206Z - Title: commune/signoff are file-drops, not commands
2026-06-04T02:01:23.6884820Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6885682Z 
2026-06-04T02:01:23.6886112Z ### REQ-START-1
2026-06-04T02:01:23.6887692Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T02:01:23.6889704Z - Required stages: impl, unit
2026-06-04T02:01:23.6890492Z 
2026-06-04T02:01:23.6890920Z ### REQ-START-2
2026-06-04T02:01:23.6892151Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T02:01:23.6893761Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6894620Z 
2026-06-04T02:01:23.6895033Z ### REQ-START-3
2026-06-04T02:01:23.6896471Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T02:01:23.6898282Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6899125Z 
2026-06-04T02:01:23.6899599Z ### REQ-START-4
2026-06-04T02:01:23.6900817Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T02:01:23.6902394Z - Required stages: impl, unit
2026-06-04T02:01:23.6903189Z 
2026-06-04T02:01:23.6903596Z ### REQ-EP-1
2026-06-04T02:01:23.6904922Z - Title: Day-one endpoint types; open type system
2026-06-04T02:01:23.6906468Z - Required stages: impl, unit
2026-06-04T02:01:23.6907269Z 
2026-06-04T02:01:23.6907683Z ### REQ-EP-2
2026-06-04T02:01:23.6909052Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T02:01:23.6910865Z - Required stages: impl, unit
2026-06-04T02:01:23.6911666Z 
2026-06-04T02:01:23.6912071Z ### REQ-EP-3
2026-06-04T02:01:23.6913571Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T02:01:23.6915461Z - Required stages: impl, unit
2026-06-04T02:01:23.6916256Z 
2026-06-04T02:01:23.6916672Z ### REQ-EP-4
2026-06-04T02:01:23.6917918Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T02:01:23.6919587Z - Required stages: impl, unit
2026-06-04T02:01:23.6920375Z 
2026-06-04T02:01:23.6920794Z ### REQ-EP-5
2026-06-04T02:01:23.6925564Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T02:01:23.6931003Z - Required stages: 
2026-06-04T02:01:23.6931666Z 
2026-06-04T02:01:23.6932096Z ### REQ-INST-1
2026-06-04T02:01:23.6933440Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T02:01:23.6935095Z - Required stages: 
2026-06-04T02:01:23.6935707Z 
2026-06-04T02:01:23.6936130Z ### REQ-INST-2
2026-06-04T02:01:23.6937237Z - Title: Per-node files, synced Psyche mind
2026-06-04T02:01:23.6938641Z - Required stages: 
2026-06-04T02:01:23.6939309Z 
2026-06-04T02:01:23.6939773Z ### REQ-INST-3
2026-06-04T02:01:23.6941059Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T02:01:23.6942658Z - Required stages: 
2026-06-04T02:01:23.6943271Z 
2026-06-04T02:01:23.6943694Z ### REQ-INST-4
2026-06-04T02:01:23.6945142Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T02:01:23.6946937Z - Required stages: 
2026-06-04T02:01:23.6947576Z 
2026-06-04T02:01:23.6947992Z ### REQ-INST-5
2026-06-04T02:01:23.6949483Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T02:01:23.6951482Z - Required stages: 
2026-06-04T02:01:23.6952119Z 
2026-06-04T02:01:23.6952543Z ### REQ-INST-6
2026-06-04T02:01:23.6954055Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T02:01:23.6955916Z - Required stages: 
2026-06-04T02:01:23.6956531Z 
2026-06-04T02:01:23.6956958Z ### REQ-INST-7
2026-06-04T02:01:23.6958154Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T02:01:23.6959833Z - Required stages: impl, unit
2026-06-04T02:01:23.6960632Z 
2026-06-04T02:01:23.6961040Z ### REQ-INST-8
2026-06-04T02:01:23.6962357Z - Title: Remote-control mode distinct from local operation
2026-06-04T02:01:23.6963977Z - Required stages: 
2026-06-04T02:01:23.6964593Z 
2026-06-04T02:01:23.6965025Z ### REQ-INST-9
2026-06-04T02:01:23.6966546Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T02:01:23.6968469Z - Required stages: impl, unit
2026-06-04T02:01:23.6969311Z 
2026-06-04T02:01:23.6969730Z ### REQ-INST-10
2026-06-04T02:01:23.6971426Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T02:01:23.6973503Z - Required stages: impl, unit
2026-06-04T02:01:23.6974287Z 
2026-06-04T02:01:23.6974710Z ### REQ-INST-11
2026-06-04T02:01:23.6976396Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T02:01:23.6978486Z - Required stages: impl, unit
2026-06-04T02:01:23.6979335Z 
2026-06-04T02:01:23.6979752Z ### REQ-INST-12
2026-06-04T02:01:23.6981969Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T02:01:23.6984554Z - Required stages: impl, unit
2026-06-04T02:01:23.6985358Z 
2026-06-04T02:01:23.6985786Z ### REQ-INST-13
2026-06-04T02:01:23.6987290Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T02:01:23.6989431Z - Required stages: impl, unit
2026-06-04T02:01:23.6990217Z 
2026-06-04T02:01:23.6990695Z ### REQ-INST-14
2026-06-04T02:01:23.6993468Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T02:01:23.6996587Z - Required stages: 
2026-06-04T02:01:23.6997215Z 
2026-06-04T02:01:23.6997627Z ### REQ-INST-15
2026-06-04T02:01:23.7002786Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T02:01:23.7008155Z - Required stages: 
2026-06-04T02:01:23.7008779Z 
2026-06-04T02:01:23.7009251Z ### REQ-REACH-1
2026-06-04T02:01:23.7010628Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T02:01:23.7012222Z - Required stages: 
2026-06-04T02:01:23.7012861Z 
2026-06-04T02:01:23.7013293Z ### REQ-REACH-2
2026-06-04T02:01:23.7014620Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T02:01:23.7016252Z - Required stages: 
2026-06-04T02:01:23.7016878Z 
2026-06-04T02:01:23.7017301Z ### REQ-MSG-1
2026-06-04T02:01:23.7020639Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T02:01:23.7024277Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7025128Z 
2026-06-04T02:01:23.7025541Z ### REQ-MSG-2
2026-06-04T02:01:23.7027572Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T02:01:23.7030266Z - Required stages: impl, unit
2026-06-04T02:01:23.7031155Z 
2026-06-04T02:01:23.7031654Z ### REQ-MSG-3
2026-06-04T02:01:23.7034628Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T02:01:23.7037999Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7038909Z 
2026-06-04T02:01:23.7039432Z ### REQ-NODE-IDENTITY
2026-06-04T02:01:23.7041824Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T02:01:23.7044026Z - Required stages: impl, unit
2026-06-04T02:01:23.7044966Z 
2026-06-04T02:01:23.7045422Z ### REQ-NET-1
2026-06-04T02:01:23.7047108Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T02:01:23.7049006Z - Required stages: impl, unit
2026-06-04T02:01:23.7049896Z 
2026-06-04T02:01:23.7050303Z ### REQ-NET-2
2026-06-04T02:01:23.7051754Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T02:01:23.7053574Z - Required stages: impl
2026-06-04T02:01:23.7054272Z 
2026-06-04T02:01:23.7054691Z ### REQ-NET-3
2026-06-04T02:01:23.7056069Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T02:01:23.7058276Z - Required stages: 
2026-06-04T02:01:23.7059065Z 
2026-06-04T02:01:23.7059675Z ### REQ-PAIR-1
2026-06-04T02:01:23.7060932Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T02:01:23.7062474Z - Required stages: impl, unit
2026-06-04T02:01:23.7063323Z 
2026-06-04T02:01:23.7063855Z ### REQ-PAIR-2
2026-06-04T02:01:23.7074541Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T02:01:23.7076205Z - Required stages: impl, unit
2026-06-04T02:01:23.7077005Z 
2026-06-04T02:01:23.7077429Z ### REQ-PAIR-3
2026-06-04T02:01:23.7078706Z - Title: Fetch current pairing code from any paired node
2026-06-04T02:01:23.7080430Z - Required stages: impl, unit
2026-06-04T02:01:23.7081217Z 
2026-06-04T02:01:23.7081650Z ### REQ-PAIR-4
2026-06-04T02:01:23.7082724Z - Title: Subnet naming on first pairing
2026-06-04T02:01:23.7084103Z - Required stages: impl, unit
2026-06-04T02:01:23.7084898Z 
2026-06-04T02:01:23.7085317Z ### REQ-PAIR-5
2026-06-04T02:01:23.7087594Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T02:01:23.7090634Z - Required stages: impl, unit
2026-06-04T02:01:23.7091436Z 
2026-06-04T02:01:23.7091864Z ### REQ-PAIR-6
2026-06-04T02:01:23.7093852Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T02:01:23.7096242Z - Required stages: impl, unit
2026-06-04T02:01:23.7097020Z 
2026-06-04T02:01:23.7097454Z ### REQ-PAIR-7
2026-06-04T02:01:23.7098799Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T02:01:23.7100531Z - Required stages: 
2026-06-04T02:01:23.7101161Z 
2026-06-04T02:01:23.7101567Z ### REQ-SEC-1
2026-06-04T02:01:23.7104466Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T02:01:23.7107677Z - Required stages: 
2026-06-04T02:01:23.7108288Z 
2026-06-04T02:01:23.7108714Z ### REQ-NOTIF-1
2026-06-04T02:01:23.7111593Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T02:01:23.7114622Z - Required stages: 
2026-06-04T02:01:23.7115246Z 
2026-06-04T02:01:23.7115662Z ### REQ-NOTIF-2
2026-06-04T02:01:23.7117719Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T02:01:23.7120155Z - Required stages: 
2026-06-04T02:01:23.7120772Z 
2026-06-04T02:01:23.7121192Z ### REQ-UPD-1
2026-06-04T02:01:23.7122275Z - Title: Peer-propagated update over P2P
2026-06-04T02:01:23.7123654Z - Required stages: 
2026-06-04T02:01:23.7124272Z 
2026-06-04T02:01:23.7124678Z ### REQ-UPD-2
2026-06-04T02:01:23.7125915Z - Title: All binaries signature-verified before handoff
2026-06-04T02:01:23.7127527Z - Required stages: impl, unit
2026-06-04T02:01:23.7128325Z 
2026-06-04T02:01:23.7128749Z ### REQ-UPD-3
2026-06-04T02:01:23.7130214Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T02:01:23.7132052Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7132917Z 
2026-06-04T02:01:23.7133343Z ### REQ-UPD-4
2026-06-04T02:01:23.7134812Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T02:01:23.7136872Z - Required stages: impl, unit
2026-06-04T02:01:23.7137666Z 
2026-06-04T02:01:23.7138082Z ### REQ-UPD-5
2026-06-04T02:01:23.7139336Z - Title: spt-core ripple-updates registered adapters
2026-06-04T02:01:23.7141158Z - Required stages: impl, unit
2026-06-04T02:01:23.7142086Z 
2026-06-04T02:01:23.7142581Z ### REQ-TERM-1
2026-06-04T02:01:23.7144174Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T02:01:23.7146195Z - Required stages: impl, unit
2026-06-04T02:01:23.7147101Z 
2026-06-04T02:01:23.7147577Z ### REQ-TERM-2
2026-06-04T02:01:23.7149326Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T02:01:23.7151596Z - Required stages: impl, unit
2026-06-04T02:01:23.7152426Z 
2026-06-04T02:01:23.7152893Z ### REQ-TERM-3
2026-06-04T02:01:23.7154180Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T02:01:23.7155901Z - Required stages: impl, unit
2026-06-04T02:01:23.7156946Z 
2026-06-04T02:01:23.7157446Z ### REQ-TERM-4
2026-06-04T02:01:23.7160623Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T02:01:23.7163975Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7164872Z 
2026-06-04T02:01:23.7165319Z ### REQ-FRONT-1
2026-06-04T02:01:23.7166806Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T02:01:23.7168642Z - Required stages: 
2026-06-04T02:01:23.7169328Z 
2026-06-04T02:01:23.7169896Z ### REQ-INSTALL-1
2026-06-04T02:01:23.7171526Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T02:01:23.7173436Z - Required stages: 
2026-06-04T02:01:23.7174055Z 
2026-06-04T02:01:23.7174483Z ### REQ-INSTALL-2
2026-06-04T02:01:23.7175723Z - Title: Marketplace-repackaging-friendly install
2026-06-04T02:01:23.7177259Z - Required stages: 
2026-06-04T02:01:23.7178239Z 
2026-06-04T02:01:23.7178669Z ### REQ-INSTALL-3
2026-06-04T02:01:23.7180240Z - Title: Idempotent + interactive-optional first run
2026-06-04T02:01:23.7181837Z - Required stages: 
2026-06-04T02:01:23.7182460Z 
2026-06-04T02:01:23.7182893Z ### REQ-INSTALL-4
2026-06-04T02:01:23.7187457Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T02:01:23.7192335Z - Required stages: 
2026-06-04T02:01:23.7192949Z 
2026-06-04T02:01:23.7193387Z ### REQ-MIGRATE-1
2026-06-04T02:01:23.7194825Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T02:01:23.7196566Z - Required stages: 
2026-06-04T02:01:23.7197192Z 
2026-06-04T02:01:23.7197603Z ### REQ-INFRA-1
2026-06-04T02:01:23.7199103Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T02:01:23.7201499Z - Required stages: 
2026-06-04T02:01:23.7202115Z 
2026-06-04T02:01:23.7202541Z ### REQ-DOCS-1
2026-06-04T02:01:23.7204139Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T02:01:23.7206093Z - Required stages: 
2026-06-04T02:01:23.7206713Z 
2026-06-04T02:01:23.7207122Z ### REQ-DOCS-2
2026-06-04T02:01:23.7208483Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T02:01:23.7218811Z - Required stages: 
2026-06-04T02:01:23.7220031Z 
2026-06-04T02:01:23.7220625Z ### REQ-DOCS-3
2026-06-04T02:01:23.7222192Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T02:01:23.7223753Z - Required stages: 
2026-06-04T02:01:23.7224384Z 
2026-06-04T02:01:23.7224802Z ### REQ-DOCS-4
2026-06-04T02:01:23.7226915Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T02:01:23.7228939Z - Required stages: 
2026-06-04T02:01:23.7229773Z 
2026-06-04T02:01:23.7230207Z ### REQ-DOCS-5
2026-06-04T02:01:23.7231803Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T02:01:23.7233814Z - Required stages: 
2026-06-04T02:01:23.7234444Z 
2026-06-04T02:01:23.7235337Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T02:01:23.7237220Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T02:01:23.7239216Z - Required stages: impl, unit
2026-06-04T02:01:23.7240371Z 
2026-06-04T02:01:23.7241050Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T02:01:23.7242859Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T02:01:23.7244676Z - Required stages: impl, unit
2026-06-04T02:01:23.7245514Z 
2026-06-04T02:01:23.7246051Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T02:01:23.7247553Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T02:01:23.7249126Z - Required stages: 
2026-06-04T02:01:23.7249967Z 
2026-06-04T02:01:23.7250463Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T02:01:23.7252298Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T02:01:23.7254749Z - Required stages: impl, unit
2026-06-04T02:01:23.7255695Z 
2026-06-04T02:01:23.7256180Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T02:01:23.7257876Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T02:01:23.7259836Z - Required stages: impl, unit
2026-06-04T02:01:23.7260769Z 
2026-06-04T02:01:23.7261302Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T02:01:23.7263297Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T02:01:23.7265731Z - Required stages: 
2026-06-04T02:01:23.7266383Z 
2026-06-04T02:01:23.7266888Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T02:01:23.7268325Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T02:01:23.7269896Z - Required stages: 
2026-06-04T02:01:23.7270518Z 
2026-06-04T02:01:23.7271058Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T02:01:23.7272759Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T02:01:23.7274517Z - Required stages: impl, unit
2026-06-04T02:01:23.7275745Z 
2026-06-04T02:01:23.7276281Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T02:01:23.7277854Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T02:01:23.7279854Z - Required stages: impl, int
2026-06-04T02:01:23.7280657Z 
2026-06-04T02:01:23.7281189Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T02:01:23.7282844Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T02:01:23.7284794Z - Required stages: impl, unit
2026-06-04T02:01:23.7285643Z 
2026-06-04T02:01:23.7286212Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T02:01:23.7288038Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T02:01:23.7290074Z - Required stages: impl, unit
2026-06-04T02:01:23.7290971Z 
2026-06-04T02:01:23.7291498Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T02:01:23.7293364Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T02:01:23.7295316Z - Required stages: impl, unit
2026-06-04T02:01:23.7296115Z 
2026-06-04T02:01:23.7296658Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T02:01:23.7298349Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T02:01:23.7300110Z - Required stages: impl, unit
2026-06-04T02:01:23.7300933Z 
2026-06-04T02:01:23.7301474Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T02:01:23.7303261Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T02:01:23.7305101Z - Required stages: impl, unit
2026-06-04T02:01:23.7305893Z 
2026-06-04T02:01:23.7306430Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T02:01:23.7308480Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T02:01:23.7310623Z - Required stages: impl, unit
2026-06-04T02:01:23.7311438Z 
2026-06-04T02:01:23.7311898Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T02:01:23.7313985Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T02:01:23.7316306Z - Required stages: impl, unit
2026-06-04T02:01:23.7317096Z 
2026-06-04T02:01:23.7317639Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T02:01:23.7319709Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T02:01:23.7322078Z - Required stages: impl, unit
2026-06-04T02:01:23.7322880Z 
2026-06-04T02:01:23.7323410Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T02:01:23.7325719Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T02:01:23.7328125Z - Required stages: impl, unit
2026-06-04T02:01:23.7328919Z 
2026-06-04T02:01:23.7329644Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T02:01:23.7333141Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T02:01:23.7336294Z - Required stages: impl, unit
2026-06-04T02:01:23.7337109Z 
2026-06-04T02:01:23.7337653Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T02:01:23.7339232Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T02:01:23.7340784Z - Required stages: impl, unit
2026-06-04T02:01:23.7341631Z 
2026-06-04T02:01:23.7342138Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T02:01:23.7343578Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T02:01:23.7345168Z - Required stages: impl, unit
2026-06-04T02:01:23.7345977Z 
2026-06-04T02:01:23.7346502Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T02:01:23.7348167Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T02:01:23.7349919Z - Required stages: impl, unit
2026-06-04T02:01:23.7350726Z 
2026-06-04T02:01:23.7351216Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T02:01:23.7352807Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T02:01:23.7354591Z - Required stages: impl, unit
2026-06-04T02:01:23.7355402Z 
2026-06-04T02:01:23.7355926Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T02:01:23.7357511Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T02:01:23.7366921Z - Required stages: impl, unit
2026-06-04T02:01:23.7367942Z 
2026-06-04T02:01:23.7368756Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T02:01:23.7370457Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T02:01:23.7372157Z - Required stages: impl, unit
2026-06-04T02:01:23.7372964Z 
2026-06-04T02:01:23.7373517Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T02:01:23.7375338Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T02:01:23.7377260Z - Required stages: impl, unit
2026-06-04T02:01:23.7378061Z 
2026-06-04T02:01:23.7378540Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T02:01:23.7380319Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T02:01:23.7382300Z - Required stages: impl, unit
2026-06-04T02:01:23.7383085Z 
2026-06-04T02:01:23.7383611Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T02:01:23.7385340Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T02:01:23.7387163Z - Required stages: impl, unit
2026-06-04T02:01:23.7387967Z 
2026-06-04T02:01:23.7388515Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T02:01:23.7390219Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T02:01:23.7391860Z - Required stages: impl, unit
2026-06-04T02:01:23.7392656Z 
2026-06-04T02:01:23.7393223Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T02:01:23.7395327Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T02:01:23.7397453Z - Required stages: impl, unit
2026-06-04T02:01:23.7398246Z 
2026-06-04T02:01:23.7398720Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T02:01:23.7400711Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T02:01:23.7402817Z - Required stages: impl, unit
2026-06-04T02:01:23.7403614Z 
2026-06-04T02:01:23.7404115Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T02:01:23.7406039Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T02:01:23.7408126Z - Required stages: impl, unit
2026-06-04T02:01:23.7408910Z 
2026-06-04T02:01:23.7409470Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T02:01:23.7411816Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T02:01:23.7414543Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7415410Z 
2026-06-04T02:01:23.7415902Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T02:01:23.7418164Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T02:01:23.7420608Z - Required stages: impl, unit
2026-06-04T02:01:23.7421390Z 
2026-06-04T02:01:23.7421945Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T02:01:23.7425419Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T02:01:23.7428909Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7429806Z 
2026-06-04T02:01:23.7430344Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T02:01:23.7435927Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T02:01:23.7441071Z - Required stages: 
2026-06-04T02:01:23.7441690Z 
2026-06-04T02:01:23.7442248Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T02:01:23.7447323Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T02:01:23.7452299Z - Required stages: 
2026-06-04T02:01:23.7452930Z 
2026-06-04T02:01:23.7453466Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T02:01:23.7458011Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T02:01:23.7462607Z - Required stages: impl, unit
2026-06-04T02:01:23.7463398Z 
2026-06-04T02:01:23.7463911Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T02:01:23.7468101Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T02:01:23.7472324Z - Required stages: impl, unit
2026-06-04T02:01:23.7473117Z 
2026-06-04T02:01:23.7473626Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T02:01:23.7479494Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T02:01:23.7485121Z - Required stages: impl, unit
2026-06-04T02:01:23.7485915Z 
2026-06-04T02:01:23.7486349Z ## How to report back
2026-06-04T02:01:23.7487000Z 
2026-06-04T02:01:23.7487901Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T02:01:23.7489274Z 
2026-06-04T02:01:23.7489676Z     {
2026-06-04T02:01:23.7490708Z       "code": "requirement_quality",
2026-06-04T02:01:23.7492077Z       "requirementId": "REQ-...",
2026-06-04T02:01:23.7493757Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T02:01:23.7495584Z       "message": "<short reason>",
2026-06-04T02:01:23.7496978Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T02:01:23.7498379Z     }
2026-06-04T02:01:23.7498881Z 
2026-06-04T02:01:23.7499917Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T02:01:23.7502093Z deterministic findings above don't need to be repeated.
